package guy.flavell.core.genome;

public class Genome {

	/* Gender and life cycle length form:
	 * 0   : Gender            : 0 - Female 
	 *                         : 1 - Male
	 * 00  : Gender Weighting  : 00 - Female Bias 
	 *                         : 11 - Male Bias 
	 *                         : 01/10 - No Bias
	 * 000 : Life cycle length : 000 - 1x 
	 *                         : 001 - 2x 
	 *                         : 010 - 4x 
	 *                         : 011 - 8x 
	 *                         : 100 - 16x 
	 *                         : 101 - 32x
	 *                         : 110 - 64x 
	 *                         : 111 - 128x
	 * 0   : Dead / Alive      : 0 - Alive
	 *                         : 1 - Dead
	 * 0-
	 */
	private byte primary;
	private static final byte FEMALE = (byte) 0b00000000;
	private static final byte MALE = (byte) 0b10000000;
	private static final byte FEMALE_BIAS = (byte) 0b00000000;
	private static final byte MALE_BIAS_1 = (byte) 0b00000000;
	private static final byte No_BIAS_1 = (byte) 0b00100000;
	private static final byte No_BIAS_2 = (byte) 0b00010000;
	
	
	
	public Genome() {
		switch((int) (Math.random() * 3)) {
		case 0:
			primary = 0b0010; // Normal Female
			break;
		case 1:
			primary = 0b0110; // Normal Male
			break;
		case 2:
			primary = 0b0111; // Male Dominant Male
			break;
		default:
			primary = 0b0000; // Female Dominant Female
			break;
		}
	}
	
	public Genome(Gamete mother, Gamete father) {
		
	}
	
	byte getGender() {
		return primary;
	}
	
	@Override
	public String toString() {
		return "";
	}
}
